package kr.co.doriclassic.powerjava.chapter12;

public class 물오리 extends Duck {
	int x,y;
	@Override
	public void quack() {
	//추상클래스 상속시 자동으로 재정의 됨
		System.out.println("꽥꽥");
	}
	
	public int getX() {
		return x;
	}

	public void setX(int x) {
		this.x = x;
	}

	public int getY() {
		return y;
	}

	public void setY(int y) {
		this.y = y;
	}

	//이 형식을 외워두자, 오버로딩된 메소드를 호출할 수 있다.
	public static void main(String[] args) {
		//다형성은 추상클래스나 인터페이스 상속에만 적용가능
		//부모의 관점에서 생각해야 한다.
		//부모클래스에서 정의되지 않은 필드는 사용할 수 없다.
		Duck[] arrDuck = new Duck[3];
		arrDuck[0] = new 물오리();
		arrDuck[1] = new 오리피리();
		arrDuck[2] = new 장난감오리();
		
		for (Duck duck : arrDuck) {
			duck.quack();			
		}
	}
}

class 장난감오리 extends Duck{

	@Override
	public void quack() {
		System.out.println("......");		
	}	
}

class 오리피리 extends Duck{

	@Override
	public void quack() {
		System.out.println("삑삑");			
	}
}
